home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / c / stut_src / bases.c < prev    next >
C/C++ Source or Header  |  1996-05-27  |  3KB  |  151 lines

  1. /*
  2.  * bases.c
  3.  *
  4.  * Purpose:
  5.  * --------
  6.  * Gestion des Bases de donn‚es/Rubriques
  7.  * -Cr‚ation d'une rubrique
  8.  *
  9.  * History:
  10.  * --------
  11.  * 1993: fplanque: Created
  12.  */
  13.  
  14.  
  15.      #include "!OPTIONS.H"                /* Options de compilation */         
  16.     #define    THIS_FILE    "BASES.C v1.00 - 03.95"
  17.           
  18.  
  19. /*
  20.  * System headers:
  21.  */
  22.     #include    <stdio.h>
  23.  
  24. /*
  25.  * Custom headers:
  26.  */
  27.     #include    "SPEC_PU.H"
  28.     #include "S_MALLOC.H"
  29.     #include    "WIN_PU.H"
  30.     #include "AESDEF.H"    
  31.     
  32.  
  33. /*
  34.  * ------------------------ PROTOTYPES -------------------------
  35.  */
  36.  
  37. /*
  38.  * Exernal prototypes:
  39.  */
  40.     /*
  41.      * G‚n‚ral: 
  42.      */
  43.     extern    void    ping ( void );
  44.     /* 
  45.      * Donn‚es: 
  46.      */
  47.     extern    DATAPAGE    *    create_newDataPage( 
  48.                                     char            *    pS_title,        /* In: Titre de la demande */
  49.                                     DATAGROUP    *    datagroup,        /* In: Datagroup ds lequel on veut cr‚er */
  50.                                     GRECT             *    start_box );    /* In: d‚but effet graphique d'ouverture */
  51.     extern    void    attach_new_data( DATADIR *datadir, DATAPAGE *new_data );
  52.     /*
  53.      Objets: 
  54.      */
  55.     extern    void    redraw_icon( WIPARAMS * params_adr, int start_ob, int icon, int take_control );
  56.  
  57. /*
  58.  * Private internal prototypes:
  59.  */
  60.     static void    creer_rubrique( GRECT *start_box );
  61.  
  62.    
  63. /*
  64.  * ------------------------ VARIABLES -------------------------
  65.  */
  66.     
  67. /*
  68.  * EXTernal variables: 
  69.  */
  70.     /* 
  71.      * Bureau: 
  72.      */
  73.     extern    WIPARAMS    *G_wi_list_adr;        /* Adresse de la liste de paramŠtres */
  74.     extern    WIPARAMS    *G_desk_params_adr;    /* ParamŠtres de la "fenˆtre bureau" */
  75.  
  76.  
  77. /*
  78.  * ------------------------ FUNCTIONS -------------------------
  79.  */
  80.  
  81. /*
  82.  * creer_rubrique(-)
  83.  *
  84.  * Purpose:
  85.  * --------
  86.  * Cr‚er une nouvelle rubrique
  87.  *
  88.  * History:
  89.  * --------
  90.  * 1993: fplanque: Created
  91.  * 18.06.94: creation new datapage extraite vers create_newDataPage()
  92.  * 22.11.94: am‚lioration dela d‚tection d'erreur avant d'agir
  93.  */
  94. void    creer_rubrique( GRECT *start_box )
  95. {
  96.     DATAGROUP * datagroup;
  97.  
  98.     if( G_wi_list_adr == NULL
  99.         || G_wi_list_adr -> class != CLASS_DIR )    
  100.     {
  101.         ping();
  102.         return;
  103.     }
  104.  
  105.     datagroup = G_wi_list_adr -> datagroup;
  106.  
  107.     /*     
  108.      * V‚rifie que la fenˆtre sup‚rieure peut recevoir une 
  109.      * nouvelle rub:  
  110.      */
  111.     if( datagroup -> DataType != DTYP_DATAS )
  112.     {
  113.         ping();
  114.         return;
  115.     }
  116.     else
  117.     {    /* 
  118.          * Oui, la fenˆtre peut recevoir une rubrique: 
  119.          * Demande nouveau nom et cr‚e datapage: 
  120.          */
  121.  
  122.         DATAPAGE    * pDataPage = create_newDataPage( 
  123.                                             "NOUVELLE RUBRIQUE",
  124.                                             datagroup,
  125.                                             start_box );
  126.  
  127.         if( pDataPage != NULL )
  128.         {    /*
  129.              * Si cr‚ation OK:
  130.              */
  131.             DATA_RECORDS    *data_records;        /* Infos + Pointeurs sur les enregistrements */
  132.  
  133.             /* 
  134.              * Cr‚e une zone d'info sur les enregistrements de la base: 
  135.              */
  136.             data_records = (DATA_RECORDS *) MALLOC( sizeof( DATA_RECORDS ) );
  137.             /* 
  138.              * Fixe variables et ptrs: 
  139.              */
  140.             data_records -> nb_records     = 0;        /* Aucun enregistrement */
  141.             data_records -> first_record    = NULL;
  142.             data_records -> last_record    = NULL;
  143.             /* 
  144.              * Fixe ptr sur ces infos: 
  145.              */
  146.             pDataPage -> data.records = data_records;
  147.  
  148.         }
  149.     }
  150. }
  151.